<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>4-4 给组件绑定原生事件</title>
    <script src="../vue.js"></script>
</head>

<body>
    <div id="root">
        <!-- <child @click="handleClick"></child> -->
        <child @click.native="handleClick"></child>
    </div>

    <script>
        // https://zhuanlan.zhihu.com/p/620687652
        // 子组件若要触发父组件绑定的事件，需要子组件对 template 的 dom 元素绑定一个原生事件。
        // 当子组件的这个 dom 元素被点击时，methods 上调用 this.$emit("自定义事件名") 去触发自定义事件，同时父组件中去监听该自定义事件。
        // 在父组件上做事件监听 @click:native="事件方法名" ，监听的并不是自定义事件，是原生的点击事件。
        Vue.component('child', {
            // template: '<div @click="handleChild">Child</div>',
            template: '<div>Child</div>',
            // methods: {
            //     handleChild() {
            //         alert("handleChild");
            //         this.$emit('click');
            //     }
            // },
        })

        var vm = new Vue({
            el: "#root",
            methods: {
                handleClick() {
                    alert("handleClick");
                }
            }
        })
    </script>
</body>

</html>